const fs = require('fs');
const util = require('util');

Date.prototype.format = function(formatStr)
{
    var str = formatStr;
    var Week = ['日', '一', '二', '三', '四', '五', '六'];

    str = str.replace(/yyyy|YYYY/, this.getFullYear());
    str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));

    var month = this.getMonth() + 1;
    str = str.replace(/MM/, month > 9 ? month.toString() : '0' + month);
    str = str.replace(/M/g, month);

    str = str.replace(/w|W/g, Week[this.getDay()]);

    str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
    str = str.replace(/d|D/g, this.getDate());

    str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
    str = str.replace(/h|H/g, this.getHours());
    str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
    str = str.replace(/m/g, this.getMinutes());

    str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
    str = str.replace(/s|S/g, this.getSeconds());

    return str;
};


setInterval(()=>{
  console.log(new Date());
}, 1000);


let s = '1234567890';

let path = 'F:/baseline/test/';

// let writeTest = (f) =>{
//   if (f>1000){
//     return;
//   }
//   let file = path + f + '.txt';
//   let str = '';
//   for(let i = 0;i<1000000; i ++){
//     str = str + s + '\r\n';
//   }
//   console.log(`write file ${f} begin`);
//   fs.writeFile(file, str, ()=>{
//     console.log(`write file ${f} end`);
//     writeTest(f + 1);
//   });
// }
// writeTest(0);



// for (let f=0;f<1000;f++){
//   let file = path + f + '.txt';
//   let str = '';
//   for(let i = 0;i<1000000; i ++){
//     str = str + s + '\r\n';
//   }
//   console.log(`write file ${f} begin`);
//   fs.writeFileSync(file, str);
//   console.log(`write file ${f} end`);
// }


// let write = (file, data)=>{
//   return new Promise((suc, fail)=>{
//     fs.writeFile(file, data, (error)=>{
//       if(error){
//         fail(error);
//       }else{
//         suc();
//       }
//     })
//   });
// }

const write = util.promisify(fs.writeFile);   //使用node async 异步框架封装
const exists = util.promisify(fs.exists);
const lstat = util.promisify(fs.lstat);
const fstat = util.promisify(fs.fstat);
const stat = util.promisify(fs.stat);

let asyncFun = async ()=>{ 
  for (let f=0;f<10;f++){
    let file = path + f + '.txt';
    let str = '';
    for(let i = 0;i<1000000; i ++){
      str = str + s + '\r\n';
    }
    console.log(`write file ${f} begin`);
    await write(file, str);
    console.log(`write file ${f} end`);
  }
}

const run = async ()=>{
  // await asyncFun();
  // await asyncFun();
  // await asyncFun(); 

  let t = await stat('G:/ftp/request/unimas_back/1-a92e49baf5d42baea7d668d222e06be5.request')
  console.log(new Date(t.birthtimeMs).format('yyyy-MM-dd HH:mm:ss'));
  console.log(new Date(t.ctimeMs).format('yyyy-MM-dd HH:mm:ss'));

}
run();